import store from '../store';
import TIM from 'tim-wx-sdk';
// 创建 SDK 实例，TIM.create() 方法对于同一个 SDKAppID 只会返回同一份实例
let options = {
	
	SDKAppID: 1400792065, // 正式
	// SDKAppID: 1400554990 // 测试
}; 
let tim = TIM.create(options);
tim.setLogLevel(1); // * 日志级别
// 0 普通级别，日志量较多，接入时建议使用
// 1 发行级别，SDK 输出关键信息，生产环境时建议使用
// 2 告警级别，SDK 只输出告警和错误级别的日志
// 3 错误级别，SDK 只输出错误级别的日志
// 4 无日志级别，SDK 将不打印任何日志


// SDK 进入 ready 状态时触发，接入侧监听此事件，然后可调用 SDK 发送消息等API
let onSdkReady = function(event) {
    console.log('tim onSdkReady')
    console.log(store.state.tim.sdk_ready)
    store.state.tim.sdk_ready = true
}
// SDK 进入 not ready 状态时触发，此时接入侧将无法使用 SDK 发送消息等功能。
let onSdkNotReady = function(event) {
    console.log('tim onSdkNotReady')
    store.state.tim.sdk_ready = false
    let type = store.state.doc_type
    if (type == 4) {
        uni.showModal({
            title: '通信已断开！',
            content: '您需要重新进入该页面才能继续联系医生',
            showCancel: false,
            success: (res)=> {
                uni.switchTab({
                    url: "/pages/workbench/workbench"
                })
            }
        });
    }
    
}
// SDK 收到推送的单聊、群聊、群提示、群系统通知的新消息
let onMessageReceived = function(event) {
    let pageArr = ['', '首页', '我的客户', '个人中心页']
    let type = store.state.doc_type
    console.log('tim onMessageReceived')
    if (type == 4) {
        console.log('医生端聊天页面开启监听' ,event);
        // todo
    } else {
        console.log(`医生端${pageArr[type]}监听`, event);
        // todo
    }
}

// * 需要全局监听处理的事件
tim.on(TIM.EVENT.SDK_READY, onSdkReady)
tim.on(TIM.EVENT.SDK_NOT_READY, onSdkNotReady)
// tim.on(TIM.EVENT.MESSAGE_RECEIVED, onMessageReceived)

module.exports = {
    TIM: TIM,
    tim: tim,
}